#if !defined(AFX_SUBGROUPDISPLAYWND_H__C4E67DD6_A86A_4617_AE9A_F10C9320FCDD__INCLUDED_)
#define AFX_SUBGROUPDISPLAYWND_H__C4E67DD6_A86A_4617_AE9A_F10C9320FCDD__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// SubgroupDisplayWnd.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CSubgroupDisplayWnd window

class SubgroupDisplay;
class CSubgroupSurface;
class BaseCoalMineUnit;
class BaseMonitoringUnit;

class CSubgroupDisplayWnd : public CWnd
{
// Construction
public:
	CSubgroupDisplayWnd(SubgroupDisplay * pSubgroupDisplay);

// Attributes
public:
  SubgroupDisplay * m_pSubgroupDisplay;
  CSubgroupSurface * m_pSubgroupSurface;
  CListCtrl m_listctrl;

// Operations
public:
  bool Create(CSubgroupSurface * pSubgroupSurface, const CRect& rect);
  SubgroupDisplay * GetpSubgroupDisplay() const {return m_pSubgroupDisplay;}
  CSubgroupSurface * GetpSubgroupSurface() const {return m_pSubgroupSurface;}
  void GetCaptionRect(LPRECT lpRect) const;
  void GetViewRect(LPRECT lpRect) const;
  void UpdateSubgroupDisplayContent();
  void DragTitleBar();
  void InsertMonitoringUnitsToListCtrl();
  void UpdateDataDisplay(BaseCoalMineUnit * pCoalMineUnit, BaseMonitoringUnit * pMonitoringUnit);
  void UpdateDefinitionDisplay(BaseCoalMineUnit * pCoalMineUnit);
  void ApplyOptions(DWORD dwOptionPagesMask);
  void SetColumnWidthByOption();
  void AutoSize();

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CSubgroupDisplayWnd)
	protected:
	virtual void PostNcDestroy();
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CSubgroupDisplayWnd();

	// Generated message map functions
protected:
	//{{AFX_MSG(CSubgroupDisplayWnd)
	afx_msg void OnPaint();
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnSysColorChange();
	afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct);
	afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI);
	afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
	//}}AFX_MSG
  afx_msg LRESULT OnExitSizeMove(WPARAM wParam, LPARAM lParam);
  afx_msg void OnDblclk(NMHDR* pNMHDR, LRESULT* pResult);
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_SUBGROUPDISPLAYWND_H__C4E67DD6_A86A_4617_AE9A_F10C9320FCDD__INCLUDED_)
